YES 1.157
↳ HASKELL
↳ BR
((nubBy :: (a -> a -> Bool) -> [a] -> [a]) :: (a -> a -> Bool) -> [a] -> [a]) |
import qualified Maybe import qualified Prelude |
|||||||||||||||||||||||||||
elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool
|
|||||||||||||||||||||||||||
nubBy :: (a -> a -> Bool) -> [a] -> [a]
|
import qualified List import qualified Prelude |
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
((nubBy :: (a -> a -> Bool) -> [a] -> [a]) :: (a -> a -> Bool) -> [a] -> [a]) |
import qualified Maybe import qualified Prelude |
|||||||||||||||||||||||||||
elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool
|
|||||||||||||||||||||||||||
nubBy :: (a -> a -> Bool) -> [a] -> [a]
|
import qualified List import qualified Prelude |
nubBy' [] vw = [] nubBy' (y : ys) xs
| elem_by eq y xs
= nubBy' ys xs | otherwise
= y : nubBy' ys (y : xs)
nubBy' [] vw = nubBy'3 [] vw nubBy' (y : ys) xs = nubBy'2 (y : ys) xs
nubBy'1 y ys xs True = nubBy' ys xs nubBy'1 y ys xs False = nubBy'0 y ys xs otherwise
nubBy'0 y ys xs True = y : nubBy' ys (y : xs)
nubBy'2 (y : ys) xs = nubBy'1 y ys xs (elem_by eq y xs)
nubBy'3 [] vw = [] nubBy'3 wx wy = nubBy'2 wx wy
undefined
| False
= undefined
undefined = undefined1
undefined0 True = undefined
undefined1 = undefined0 False
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
((nubBy :: (a -> a -> Bool) -> [a] -> [a]) :: (a -> a -> Bool) -> [a] -> [a]) |
import qualified Maybe import qualified Prelude |
|||||||||||||||||||||||||||||||||||||||||||||
elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool
|
|||||||||||||||||||||||||||||||||||||||||||||
nubBy :: (a -> a -> Bool) -> [a] -> [a]
|
import qualified List import qualified Prelude |
nubBy' l [] where
nubBy' [] vw = nubBy'3 [] vw nubBy' (y : ys) xs = nubBy'2 (y : ys) xs
nubBy'0 y ys xs True = y : nubBy' ys (y : xs)
nubBy'1 y ys xs True = nubBy' ys xs nubBy'1 y ys xs False = nubBy'0 y ys xs otherwise
nubBy'2 (y : ys) xs = nubBy'1 y ys xs (elem_by eq y xs)
nubBy'3 [] vw = [] nubBy'3 wx wy = nubBy'2 wx wy
nubByNubBy'2 wz (y : ys) xs = nubByNubBy'1 wz y ys xs (elem_by wz y xs)
nubByNubBy'1 wz y ys xs True = nubByNubBy' wz ys xs nubByNubBy'1 wz y ys xs False = nubByNubBy'0 wz y ys xs otherwise
nubByNubBy'3 wz [] vw = [] nubByNubBy'3 wz wx wy = nubByNubBy'2 wz wx wy
nubByNubBy' wz [] vw = nubByNubBy'3 wz [] vw nubByNubBy' wz (y : ys) xs = nubByNubBy'2 wz (y : ys) xs
nubByNubBy'0 wz y ys xs True = y : nubByNubBy' wz ys (y : xs)
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ Narrow
(nubBy :: (a -> a -> Bool) -> [a] -> [a]) |
import qualified Maybe import qualified Prelude |
|||||||||
elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool
|
|||||||||
nubBy :: (a -> a -> Bool) -> [a] -> [a]
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
import qualified List import qualified Prelude |
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ Narrow
↳ QDP
↳ DependencyGraphProof
new_nubByNubBy'(xu32, :(xu340, xu341), xu35, xu36, ba) → new_nubByNubBy'1(xu32, xu340, xu341, xu35, xu36, :(xu35, xu36), ba)
new_nubByNubBy'1(xu32, xu33, xu34, xu35, xu36, :(xu380, xu381), ba) → new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, xu381, ba)
new_nubByNubBy'10(xu32, xu33, :(xu340, xu341), xu35, xu36, xu38, ba) → new_nubByNubBy'1(xu32, xu340, xu341, xu35, xu36, :(xu35, xu36), ba)
new_nubByNubBy'1(xu32, xu33, xu34, xu35, xu36, [], ba) → new_nubByNubBy'(xu32, xu34, xu33, :(xu35, xu36), ba)
new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, :(xu380, xu381), ba) → new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, xu381, ba)
new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, [], ba) → new_nubByNubBy'(xu32, xu34, xu33, :(xu35, xu36), ba)
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ Narrow
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPSizeChangeProof
new_nubByNubBy'(xu32, :(xu340, xu341), xu35, xu36, ba) → new_nubByNubBy'1(xu32, xu340, xu341, xu35, xu36, :(xu35, xu36), ba)
new_nubByNubBy'1(xu32, xu33, xu34, xu35, xu36, :(xu380, xu381), ba) → new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, xu381, ba)
new_nubByNubBy'10(xu32, xu33, :(xu340, xu341), xu35, xu36, xu38, ba) → new_nubByNubBy'1(xu32, xu340, xu341, xu35, xu36, :(xu35, xu36), ba)
new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, :(xu380, xu381), ba) → new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, xu381, ba)
new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, [], ba) → new_nubByNubBy'(xu32, xu34, xu33, :(xu35, xu36), ba)
From the DPs we obtained the following set of size-change graphs: